package main

import (
	"fmt"
)

/**
执行用时：0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗：2 MB, 在所有 Go 提交中击败了61.26%的用户
 */
func sortColors(nums []int)  {

	for i, j, k := 0, 0, len(nums) - 1; i <= k; {
		if nums[i] == 0 {
			nums[j], nums[i] = nums[i], nums[j]
			i, j = i + 1, j + 1
		} else if nums[i] == 2 {
			nums[i], nums[k] = nums[k], nums[i]
			k--
		} else {
			i++
		}
	}
}

func main() {

	nums := []int{2, 0, 2, 1, 1, 0}
	sortColors(nums)
	fmt.Println(nums)
}
